
## Sub-stage

[작업지정]
```
    - name: stage_claim_description_gen
      description: 청구권별 C-###_claim_description.json 병렬 생성
      tools:
        mcpServers:
          localdocs:
            type: streamable-http
            url: "http://mcp-localdocs:8012/mcp"
            description: Get the content of local documents
          code-executor:
            type: streamable-http
            url: https://code-executor.mcp.eroomai.com/mcp
            description: Run scripts of programming languages
            headers:
              Authorization: Bearer rR8OXqWrVZA1gFEo8oWfBkw2XgpWoGrrspw5ObsxTCM=

      prevs: [stage_claim_information_gen]
      nexts: []
```


[시작]
```
      map_reduce:
        max_concurrency: 20
        source:
          mcp:
            server: localdocs
            tool_name: read_docs
            parameters:
              doc_names: ["claims_identified.json"]
            key: ["identified_claims"]

        map:
          tasks:
            - task_name: load_claim_info
              mcp: code-executor
```

[다음]
```
            - task_name: generate_module_block
              when: "prev.load_claim_info.is_actio == true"
              llm_provider: google
              llm_model: gemini-3.1-pro-preview
              prompts:
                - role: system
                  content: |
                    {{prev.load_claim_info.instruction_text}}
                - role: user
                  content: |
                    ## 모듈 JSON 스키마
                    {{prev.load_claim_info.module_schemas_str}}

                    ## 처리할 청구 정보 (C-###_claim_information.json)
                    {{prev.load_claim_info.claim_info_str}}

                    위 지시사항과 스키마 구조를 사용하여 이 청구에 대한 정보 블록(JSON module)을 생성하세요.
                    JSON만 출력하세요. 마크다운 코드블록 없이 순수 JSON만 반환합니다.
```

[다음]
```
            - task_name: interpret_claim_metadata
              llm_provider: google
              llm_model: gemini-3.1-pro-preview
              reasoning: high
              verbosity: low
              prompts:
                - role: system
                  content: |
                    당신은 대한민국 민사소송용 청구권 해석 계층(interpreter layer)이다.
                    당신의 임무는 청구취지나 청구원인을 직접 작성하는 것이 아니라, Task 3가 사용할 구조화된 해석 메타데이터를 생성하는 것이다.

                    [핵심 임무]
                    1. 사실·증거·계산 객체·규칙·모듈 블록을 검토하여 source_priority_notes를 작성한다.
                    2. 금액, 날짜, 이율, 당사자 명칭, 책임범위, 청구구조, 법적 성질과 관련된 conflict_points를 식별한다.
                    3. 각 충돌에 대해 어떤 값이 법적으로 operative한지 판단하기 위한 operative_amount_candidates, operative_date_candidates, operative_rate_candidates를 작성한다.
                    4. 형식규칙이나 표면적 수치보다 실체관계와 약정 내용이 우선해야 하는 경우 substantive_override_candidates를 작성한다.
                    5. 최종적으로 selected_operatives와 drafting_guidance를 생성하여 Task 3가 이를 직접 반영해 청구취지와 청구원인을 작성할 수 있게 한다.

                    [판단 우선순위]
                    아래 순서를 엄격히 따른다.
                    1. 계약서, 약정서, 합의서, 공정증서, 판결문, 등기, 배당표, 영수증, 확인서, 거래내역, 정산자료 등 구체적 문서에 직접 나타난 내용
                    2. claim_info의 facts, evidences, legal_calculation_object
                    3. actio module block(있는 경우)
                    4. claim_statement, claim_title, case_kind 등 요약 정보
                    5. relief_summary_statement_rule
                    6. review_flags, completeness, credibility

                    [중요 원칙]
                    - relief_summary_statement_rule은 문안 규칙이지, 실체관계를 뒤집는 최상위 규범이 아니다.
                    - review_flags, completeness, credibility는 경고 신호일 뿐, 그 자체만으로 자동 감액·자동 축소·자동 예비안 작성의 근거가 아니다.
                    - 한도액, 최고액, 약정금액, 표제상 금액, 액면금 등은 언제나 청구원금의 상한이 되는 것이 아니다.
                    - 실제 대위변제, 변제, 배당, 정산, 회수, 손해발생, 반환, 공제 등으로 권리가 현실화·구체화된 경우에는 그 현실화된 값이 더 operative할 수 있다.
                    - 금액뿐 아니라 날짜, 이율, 당사자 명칭, 책임범위에도 같은 원칙을 적용한다.
                    - 증거공백이 있어도 다른 자료와 구조적으로 정합적이고 법적으로 더 operative한 값이 식별되면, substantive_override_candidates에 반영하라.
                    - 단, 자료 사이에 명시적 모순이 크고 operative 값을 특정할 수 없으면 그 사유를 드러내고 conservative_fallback_required로 표시하라.
                    - placeholder([약정이율], [추후확정], [검토필요])를 정당화하는 방향으로 해석하지 말라.
                    - 최종 목표는 무조건 보수적인 값을 고르는 것이 아니라, Task 3가 본래의 실체관계를 반영할 수 있도록 해석된 입력을 제공하는 것이다.

                - role: user
                  content: |
                    IO:
                    - IN:
                      - `C-###_claim_information.json` (required)
                      - `C-###_actio_module.json` (optional, 사해행위취소 청구인 경우에만)
                    - OUT:
                      - `C-###_claim_interpretation.json` (required)

                    아래 자료를 바탕으로 C-###_claim_interpretation.json 구조의 해석 메타데이터를 생성하라.

                    ## 출력 스키마는 file 3에서 제공되는 구조를 따르라.

                    ## 청구취지 작성 규칙
                    {{prev.load_claim_info.relief_rule_str}}

                    ## 청구 정보 (C-###_claim_information.json)
                    {{prev.load_claim_info.claim_info_str}}

                    ## 사해행위취소 정보 블록 (사해행위취소 청구인 경우에만 존재; 없으면 무시)
                    {{prev.generate_module_block}}

                    추가 및 최종 지시사항 (반드시 반영할 것):
                    1. claim_info의 facts, evidences, legal_calculation_object에서 권리발생과 책임범위를 직접 특정하는 항목을 우선 검토하라.
                    2. review_flags가 존재하더라도 그것만으로 청구원금, 기산일, 이율을 축소하지 말라.
                    3. 금액 충돌이 있으면 (a) 한도/최고액/약정상 외형 수치인지, (b) 실제 이행·대위변제·변제·정산·배당·회수 후 현실화된 수치인지, (c) 법률상 청구원금으로 직접 기능하는 수치인지 를 명확히 구분하라.
                    4. 날짜 충돌이 있으면 권리발생일, 이행일, 대위변제일, 연체발생일, 송달기준일, 등기일 중 어떤 날짜가 해당 청구의 기산일로 operative한지 구분하라.
                    5. 이율 충돌이 있으면 약정이율, 정상률, 법정이율, 송달 후 이율을 구간별로 구분하라.
                    6. 당사자 명칭이 약칭과 정식 명칭으로 혼재하면 문서상 정식 명칭을 selected_operatives.party_name_normalization에 반영하라.
                    7. substantive_override_candidates에는 왜 형식규칙상 보수적 값보다 실체법적 값이 우선하는지를 반드시 적어라.
                    8. selected_operatives는 Task 3가 그대로 사용해도 될 정도로 구체적으로 적어라.
                    9. drafting_guidance.do_not_do에는 최소한 ["review_flags만으로 감액하지 말 것", "placeholder를 남기지 말 것", "표면적 한도 수치를 자동 상한으로 삼지 말 것"] 을 반드시 포함하라.
                    10. 반드시 마크다운 블록 없는 순수 JSON 객체만 반환하라.
```


[다음]
```
            - task_name: generate_description
              llm_provider: google
              llm_model: gemini-3.1-pro-preview
              reasoning: high
              verbosity: high
              prompts:
                - role: system
                  content: |
                    당신은 대한민국 민사소송에서 원고측 소장 작성 실무를 보조하는 최고수준의 법률 문서 작성 AI다.
                    당신의 임무는 주어진 기록을 바탕으로, 단순히 보수적인 예비안을 쓰는 것이 아니라 사건의 실체관계, 계약 구조, 권리발생 경위, 손해 및 급부의 범위를 가장 정확하게 반영한 청구취지와 청구원인을 작성하는 것이다.
                    문안의 안전성만을 이유로 본래의 권리범위를 기계적으로 축소해서는 안 된다.

                    [1. 판단 우선순위 및 충돌 해결 규칙]
...
...
```


[다음]
```
            - task_name: save_description
              mcp: code-executor
              tool_name: run_code
              parameters:
                language: python
                requirements: "httpx"
                network: "agent-network"
                timeout: 120
                code: |
                  #!/usr/bin/env python3
                  """Stage2 Task4: C-###_claim_description.json 조립 및 저장"""
...
```


[다음]
```
          - task_name: stage2_summary
            llm_provider: google
            llm_model: gemini-3.1-pro-preview
            prompts:
              - role: user
                content: |
                  Stage 2 MapReduce 처리가 완료되었습니다.

                  처리 결과:
                  {{map_results}}

                  완료된 청구 목록, 각 청구의 case_kind, 사해행위취소 여부를 JSON 형식으로 요약하세요.
                  형식: {"completed": [{"claim_id": "...", "case_kind": "...", "is_actio": true/false}], "total": N}
```














